home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994…tember: Reference Library / Dev.CD Sep 94.toast / Periodicals / develop / develop Issue 19 / develop 19 code / SimpliFace_V2 / Sources / SimpliFace2.r < prev    next >
Encoding:
Text File  |  1994-04-15  |  31.1 KB  |  1,578 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        SimpliFace2.r
  3.  
  4.     Contains:    Resources for the TSimpliFace2 class
  5.  
  6.  
  7.     Developed by:
  8.  
  9.     Paul G Smith (commstalk hq & Full Moon Software, Inc)
  10.  
  11.     you can leave messages at (UK): 0727 844232; (US): 408 253 7199
  12.     BUT I prefer to be contacted by e-mail
  13.     AppleLink:     COMMSTALK.HQ
  14.     Internet:     COMMSTALK.HQ@applelink.apple.com
  15.  
  16.     "SimpliFace2" Sample code to accompany develop article
  17.     on techniques for controlling script inheritance.
  18.     
  19.     
  20.  
  21.  
  22. */
  23.  
  24. #include "SysTypes.r"
  25. #include "Types.r"
  26. #include "AppleEvents.r"
  27. #include "AEUserTermTypes.r"
  28. #include "AEObjects.r"
  29. #include "AERegistry.r"
  30. #include "ASRegistry.r"
  31. #include "ApplicationCommon.h"
  32. #include "SimpliFace2Common.h"
  33.  
  34. #include "SimpliFace2Events.h"
  35.  
  36. #include "VersionResource.r"
  37.  
  38. INCLUDE "SimpliFace2.obj";
  39.  
  40.  
  41. #define kPrefSize                550
  42. #define kMinSize                400
  43.  
  44. /* here is the quintessential MultiFinder friendliness device, the SIZE resource */
  45.  
  46. resource 'SIZE' (-1) {
  47.     dontSaveScreen,
  48.     acceptSuspendResumeEvents,
  49.     enableOptionSwitch,
  50.     canBackground,
  51.     multiFinderAware,    /* this says we do our own activate/deactivate; don't fake us out */
  52.     backgroundAndForeground, /* this is definitely not a background-only application! */
  53.     dontGetFrontClicks,    /* change this if you want "do first click" behavior like the Finder */
  54.     ignoreChildDiedEvents,
  55.     is32BitCompatible,
  56.     isHighLevelEventAware,        
  57.     localAndRemoteHLEvents,        
  58.     reserved, reserved,
  59.     reserved, reserved, reserved,
  60.     kPrefSize * 1024,
  61.     kMinSize * 1024
  62. };
  63.  
  64.  
  65.  
  66. resource kAEScriptingSizeResource (0, "AS sizes", purgeable) {
  67.     dontReadExtensionTerms,
  68.     reserved, reserved, reserved, 
  69.     reserved, reserved, reserved, reserved, 
  70.     reserved, reserved, reserved, reserved, 
  71.     reserved, reserved, reserved, reserved, 
  72.     0,
  73.     0,
  74.     0,
  75.     0,
  76.     0,
  77.     0
  78. };
  79.  
  80.  
  81. /* aete resource for AppleScript */
  82.  
  83.  
  84. resource typeAETE (0) {
  85.     0x1,
  86.     0x0,
  87.     english,
  88.     roman,
  89.     {    /* array Suites: 0 elements */
  90.         /* [1] */
  91.         "Required suite",
  92.         "",
  93.         kAERequiredSuite,
  94.         1,
  95.         1,
  96.         {    /* array Events: 0 elements */
  97.         },
  98.         {    /* array Classes: 0 elements */
  99.         },
  100.         {    /* array ComparisonOps: 0 elements */
  101.         },
  102.         {    /* array Enumerations: 0 elements */
  103.         },
  104.         /* [2] */
  105.         "SimpliFace suite",
  106.         "terms extracted from Standard suite",
  107.         kSignature,
  108.         1,
  109.         1,
  110.         {    /* array Events: 16 elements */
  111.             /* [1] */
  112.             "close",
  113.             "Close an object",
  114.             kAECoreSuite,
  115.             kAEClose,
  116.             noReply,
  117.             "",
  118.             replyOptional,
  119.             singleItem,
  120.             notEnumerated,
  121.             reserved,
  122.             reserved, reserved, reserved, reserved,
  123.             reserved, reserved, reserved, reserved,
  124.             reserved, reserved, reserved, reserved,
  125.             typeObjectSpecifier,
  126.             "the object to close",
  127.             directParamRequired,
  128.             singleItem,
  129.             notEnumerated,
  130.             changesState,
  131.             reserved, reserved, reserved, reserved,
  132.             reserved, reserved, reserved, reserved,
  133.             reserved, reserved, reserved, reserved,
  134.             {    /* array OtherParams: 2 elements */
  135.                 /* [1] */
  136.                 "saving",
  137.                 keyAESaveOptions,
  138.                 enumSaveOptions,
  139.                 "specifies whether changes should be saved before closing",
  140.                 optional,
  141.                 singleItem,
  142.                 enumerated,
  143.                 reserved,
  144.                 reserved, reserved, reserved, reserved,
  145.                 reserved, reserved, reserved, reserved,
  146.                 reserved, reserved, reserved, reserved,
  147.                 /* [2] */
  148.                 "saving in",
  149.                 keyAEFile,
  150.                 typeAlias,
  151.                 "the file in which to save the object",
  152.                 optional,
  153.                 singleItem,
  154.                 notEnumerated,
  155.                 reserved,
  156.                 reserved, reserved, reserved, reserved,
  157.                 reserved, reserved, reserved, reserved,
  158.                 reserved, reserved, reserved, reserved,
  159.             },
  160.             /* [3] */
  161.             "count",
  162.             "Return the number of elements of a particular class within an object",
  163.             kAECoreSuite,
  164.             kAECountElements,
  165.             typeLongInteger,
  166.             "the number of elements",
  167.             replyRequired,
  168.             singleItem,
  169.             notEnumerated,
  170.             reserved,
  171.             reserved, reserved, reserved, reserved,
  172.             reserved, reserved, reserved, reserved,
  173.             reserved, reserved, reserved, reserved,
  174.             typeObjectSpecifier,
  175.             "the object whose elements are to be counted",
  176.             directParamRequired,
  177.             singleItem,
  178.             notEnumerated,
  179.             doesntChangeState,
  180.             reserved, reserved, reserved, reserved,
  181.             reserved, reserved, reserved, reserved,
  182.             reserved, reserved, reserved, reserved,
  183.             {    /* array OtherParams: 1 elements */
  184.                 /* [1] */
  185.                 "each",
  186.                 keyAEObjectClass,
  187.                 typeType,
  188.                 "the class of the elements to be counted.",
  189.                 required,
  190.                 singleItem,
  191.                 notEnumerated,
  192.                 reserved,
  193.                 reserved, reserved, reserved, reserved,
  194.                 reserved, reserved, reserved, reserved,
  195.                 reserved, reserved, reserved, reserved,
  196.             },
  197.             /* [14] */
  198.             "do script",
  199.             "Execute a script",
  200.             kAEMiscStandards,
  201.             kAEDoScript,
  202.             typeWildCard,
  203.             "the result of the script",
  204.             replyOptional,
  205.             singleItem,
  206.             notEnumerated,
  207.             reserved, reserved, reserved, reserved, reserved, reserved,
  208.             reserved, reserved, reserved, reserved, reserved, reserved, reserved,
  209.             cIntlText,
  210.             "The script to execute",
  211.             directParamRequired,
  212.             singleItem,
  213.             notEnumerated,
  214.             changesState,
  215.             reserved, reserved, reserved, reserved, reserved, reserved,
  216.             reserved, reserved, reserved, reserved, reserved, reserved,
  217.             {    /* array OtherParams: 0 elements */
  218.             },
  219.             /* [4] */
  220.             "make",
  221.             "Make a new element",
  222.             kAECoreSuite,
  223.             kAECreateElement,
  224.             typeObjectSpecifier,
  225.             "to the new object(s)",
  226.             replyRequired,
  227.             singleItem,
  228.             notEnumerated,
  229.             reserved,
  230.             reserved, reserved, reserved, reserved,
  231.             reserved, reserved, reserved, reserved,
  232.             reserved, reserved, reserved, reserved,
  233.             noParams,
  234.             "",
  235.             directParamOptional,
  236.             singleItem,
  237.             notEnumerated,
  238.             changesState,
  239.             reserved, reserved, reserved, reserved,
  240.             reserved, reserved, reserved, reserved,
  241.             reserved, reserved, reserved, reserved,
  242.             {    /* array OtherParams: 4 elements */
  243.                 /* [1] */
  244.                 "new",
  245.                 keyAEObjectClass,
  246.                 typeType,
  247.                 "the class of the new element.",
  248.                 required,
  249.                 singleItem,
  250.                 notEnumerated,
  251.                 reserved,
  252.                 reserved, reserved, reserved, reserved,
  253.                 reserved, reserved, reserved, reserved,
  254.                 reserved, reserved, reserved, reserved,
  255.                 /* [2] */
  256.                 "at",
  257.                 keyAEInsertHere,
  258.                 typeInsertionLoc,
  259.                 "the location at which to insert the element",
  260.                 required,
  261.                 singleItem,
  262.                 notEnumerated,
  263.                 reserved,
  264.                 reserved, reserved, reserved, reserved,
  265.                 reserved, reserved, reserved, reserved,
  266.                 reserved, reserved, reserved, reserved,
  267.                 /* [3] */
  268.                 "with data",
  269.                 keyAEData,
  270.                 typeWildCard,
  271.                 "the initial data for the element",
  272.                 optional,
  273.                 singleItem,
  274.                 notEnumerated,
  275.                 reserved,
  276.                 reserved, reserved, reserved, reserved,
  277.                 reserved, reserved, reserved, reserved,
  278.                 reserved, reserved, reserved, reserved,
  279.                 /* [4] */
  280.                 "with properties",
  281.                 keyAEPropData,
  282.                 typeAERecord,
  283.                 "the initial values for the properties of the element",
  284.                 optional,
  285.                 singleItem,
  286.                 notEnumerated,
  287.                 reserved,
  288.                 reserved, reserved, reserved, reserved, 
  289.                 reserved, reserved, reserved, reserved,
  290.                 reserved, reserved, reserved, reserved
  291.             },
  292.             /* [12] */
  293.             "open",
  294.             "Open the specified object(s)",
  295.             kCoreEventClass,
  296.             kAEOpen,
  297.             noReply,
  298.             "",
  299.             replyOptional,
  300.             singleItem,
  301.             notEnumerated,
  302.             reserved,
  303.             reserved, reserved, reserved, reserved,
  304.             reserved, reserved, reserved, reserved,
  305.             reserved, reserved, reserved, reserved,
  306.             typeObjectSpecifier,
  307.             "list of objects to open",
  308.             directParamRequired,
  309.             singleItem,
  310.             notEnumerated,
  311.             changesState,
  312.             reserved, reserved, reserved, reserved,
  313.             reserved, reserved, reserved, reserved,
  314.             reserved, reserved, reserved, reserved,
  315.             {    /* array OtherParams: 0 elements */
  316.             },
  317.             /* [14] */
  318.             "quit",
  319.             "Quit an application program",
  320.             kCoreEventClass,
  321.             kAEQuitApplication,
  322.             noReply,
  323.             "",
  324.             replyOptional,
  325.             singleItem,
  326.             notEnumerated,
  327.             reserved,
  328.             reserved, reserved, reserved, reserved,
  329.             reserved, reserved, reserved, reserved,
  330.             reserved, reserved, reserved, reserved,
  331.             noParams,
  332.             "",
  333.             directParamOptional,
  334.             singleItem,
  335.             notEnumerated,
  336.             changesState,
  337.             reserved, reserved, reserved, reserved,
  338.             reserved, reserved, reserved, reserved,
  339.             reserved, reserved, reserved, reserved,
  340.             {    /* array OtherParams: 0 elements */
  341.                 /* [1] */
  342.                 "saving",
  343.                 keyAESaveOptions,
  344.                 enumSaveOptions,
  345.                 "specifies whether to save currently open documents",
  346.                 optional,
  347.                 singleItem,
  348.                 enumerated,
  349.                 reserved,
  350.                 reserved, reserved, reserved, reserved,
  351.                 reserved, reserved, reserved, reserved,
  352.                 reserved, reserved, reserved, reserved,
  353.             },
  354.             /* [1] */
  355.             "user event",
  356.             "signifies a user-initiated event",
  357.             kSignature,
  358.             kAESystemEvent,
  359.             noReply,
  360.             "",
  361.             replyOptional,
  362.             singleItem,
  363.             notEnumerated,
  364.             reserved,
  365.             reserved, reserved, reserved, reserved,
  366.             reserved, reserved, reserved, reserved,
  367.             reserved, reserved, reserved, reserved,
  368.             typeObjectSpecifier,
  369.             "the object that is to get first crack at handling the event",
  370.             directParamRequired,
  371.             singleItem,
  372.             notEnumerated,
  373.             changesState,
  374.             reserved, reserved, reserved, reserved,
  375.             reserved, reserved, reserved, reserved,
  376.             reserved, reserved, reserved, reserved,
  377.             {    /* array OtherParams: 2 elements */
  378.                 /* [1] */
  379.                 "kind",
  380.                 keyAEEventKind,
  381.                 enumEventKind,
  382.                 "the kind of event",
  383.                 optional,
  384.                 singleItem,
  385.                 enumerated,
  386.                 reserved,
  387.                 reserved, reserved, reserved, reserved,
  388.                 reserved, reserved, reserved, reserved,
  389.                 reserved, reserved, reserved, reserved,
  390.                 /* [2] */
  391.                 "with data",
  392.                 keyAEData,
  393.                 typeWildCard,
  394.                 "the data accompanying the event (event-specific)",
  395.                 optional,
  396.                 singleItem,
  397.                 notEnumerated,
  398.                 reserved,
  399.                 reserved, reserved, reserved, reserved,
  400.                 reserved, reserved, reserved, reserved,
  401.                 reserved, reserved, reserved, reserved,
  402.             },
  403.         },
  404.         {    /* array Classes: 7 elements */
  405.             /* [1] */
  406.             "application",
  407.             cApplication,
  408.             "An application program",
  409.             {    /* array Properties: 9 elements */
  410.                 /* [1] */
  411.                 "script",
  412.                 pScript,
  413.                 cScript,
  414.                 "the script",
  415.                 reserved,
  416.                 singleItem,
  417.                 notEnumerated,
  418.                 readWrite,
  419.                 reserved, reserved, reserved, reserved,
  420.                 reserved, reserved, reserved, reserved, reserved,
  421.                 notFeminine,
  422.                 notMasculine,
  423.                 singular,
  424.                 /* [1] */
  425.                 "shared handlers",
  426.                 pSharedScript,
  427.                 cScript,
  428.                 "the shared handlers script",
  429.                 reserved,
  430.                 singleItem,
  431.                 notEnumerated,
  432.                 readWrite,
  433.                 reserved, reserved, reserved, reserved,
  434.                 reserved, reserved, reserved, reserved, reserved,
  435.                 notFeminine,
  436.                 notMasculine,
  437.                 singular,
  438.                 /* [4] */
  439.                 "default type",
  440.                 pDefaultType,
  441.                 cType,
  442.                 "the default descriptor type",
  443.                 reserved,
  444.                 singleItem,
  445.                 notEnumerated,
  446.                 readOnly,
  447.                 reserved, reserved, reserved, reserved,
  448.                 reserved, reserved, reserved, reserved,
  449.                 reserved,
  450.                 reserved,
  451.                 reserved,
  452.                 singular,
  453.                 /* [5] */
  454.                 "frontmost",
  455.                 pIsFrontProcess,
  456.                 cBoolean,
  457.                 "Is this the frontmost application?",
  458.                 reserved,
  459.                 singleItem,
  460.                 notEnumerated,
  461.                 readOnly,
  462.                 reserved, reserved, reserved, reserved,
  463.                 reserved, reserved, reserved, reserved,
  464.                 reserved,
  465.                 reserved,
  466.                 reserved,
  467.                 singular,
  468.                 /* [6] */
  469.                 "name",
  470.                 pName,
  471.                 cIntlText,
  472.                 "the name",
  473.                 reserved,
  474.                 singleItem,
  475.                 notEnumerated,
  476.                 readOnly,
  477.                 reserved, reserved, reserved, reserved,
  478.                 reserved, reserved, reserved, reserved,
  479.                 reserved,
  480.                 reserved,
  481.                 reserved,
  482.                 singular,
  483.                 /* [8] */
  484.                 "version",
  485.                 pVersion,
  486.                 cVersion,
  487.                 "the version of the application",
  488.                 reserved,
  489.                 singleItem,
  490.                 notEnumerated,
  491.                 readOnly,
  492.                 reserved, reserved, reserved, reserved,
  493.                 reserved, reserved, reserved, reserved,
  494.                 reserved,
  495.                 reserved,
  496.                 reserved,
  497.                 singular,
  498.             },
  499.             {    /* array Elements: 1 elements */
  500.                 /* [1] */
  501.                 cWindow,
  502.                 {    /* array KeyForms: 2 elements */
  503.                     /* [1] */
  504.                     formAbsolutePosition,
  505.                     /* [2] */
  506.                     formName
  507.                 },
  508.             },
  509.             "applications",
  510.             cApplication,
  511.             "Every application",
  512.             {    /* array Properties: 1 elements */
  513.                 /* [1] */
  514.                 "",
  515.                 kAESpecialClassProperties,
  516.                 cType,
  517.                 "",
  518.                 reserved,
  519.                 singleItem,
  520.                 notEnumerated,
  521.                 readOnly,
  522.                 reserved, reserved, reserved, reserved,
  523.                 reserved, reserved, reserved, reserved,
  524.                 reserved,
  525.                 reserved,
  526.                 reserved,
  527.                 plural
  528.             },
  529.             {    /* array Elements: 0 elements */
  530.             },
  531.             /* [7] */
  532.             "window",
  533.             cWindow,
  534.             "A window",
  535.             {    /* array Properties: 15 elements */
  536.                 /* [1] */
  537.                 "script",
  538.                 pScript,
  539.                 cScript,
  540.                 "the script",
  541.                 reserved,
  542.                 singleItem,
  543.                 notEnumerated,
  544.                 readWrite,
  545.                 reserved, reserved, reserved, reserved,
  546.                 reserved, reserved, reserved, reserved, reserved,
  547.                 notFeminine,
  548.                 notMasculine,
  549.                 singular,
  550.                 /* [1] */
  551.                 "best type",
  552.                 pBestType,
  553.                 cType,
  554.                 "the best descriptor type",
  555.                 reserved,
  556.                 singleItem,
  557.                 notEnumerated,
  558.                 readOnly,
  559.                 reserved, reserved, reserved, reserved,
  560.                 reserved, reserved, reserved, reserved,
  561.                 reserved,
  562.                 reserved,
  563.                 reserved,
  564.                 singular,
  565.                 /* [2] */
  566.                 "bounds",
  567.                 pBounds,
  568.                 cQDRectangle,
  569.                 "the boundary rectangle for the window",
  570.                 reserved,
  571.                 singleItem,
  572.                 notEnumerated,
  573.                 readWrite,
  574.                 reserved, reserved, reserved, reserved,
  575.                 reserved, reserved, reserved, reserved,
  576.                 reserved,
  577.                 reserved,
  578.                 reserved,
  579.                 singular,
  580.                 /* [3] */
  581.                 "class",
  582.                 pClass,
  583.                 cType,
  584.                 "the class",
  585.                 reserved,
  586.                 singleItem,
  587.                 notEnumerated,
  588.                 readOnly,
  589.                 reserved, reserved, reserved, reserved,
  590.                 reserved, reserved, reserved, reserved,
  591.                 reserved,
  592.                 reserved,
  593.                 reserved,
  594.                 singular,
  595.                 /* [4] */
  596.                 "closeable",
  597.                 pHasCloseBox,
  598.                 cBoolean,
  599.                 "Does the window have a close box?",
  600.                 reserved,
  601.                 singleItem,
  602.                 notEnumerated,
  603.                 readOnly,
  604.                 reserved, reserved, reserved, reserved,
  605.                 reserved, reserved, reserved, reserved,
  606.                 reserved,
  607.                 reserved,
  608.                 reserved,
  609.                 singular,
  610.                 /* [5] */
  611.                 "default type",
  612.                 pDefaultType,
  613.                 cType,
  614.                 "the default descriptor type",
  615.                 reserved,
  616.                 singleItem,
  617.                 notEnumerated,
  618.                 readOnly,
  619.                 reserved, reserved, reserved, reserved,
  620.                 reserved, reserved, reserved, reserved,
  621.                 reserved,
  622.                 reserved,
  623.                 reserved,
  624.                 singular,
  625.                 /* [6] */
  626.                 "floating",
  627.                 pIsFloating,
  628.                 cBoolean,
  629.                 "Does the window float?",
  630.                 reserved,
  631.                 singleItem,
  632.                 notEnumerated,
  633.                 readOnly,
  634.                 reserved, reserved, reserved, reserved,
  635.                 reserved, reserved, reserved, reserved,
  636.                 reserved,
  637.                 reserved,
  638.                 reserved,
  639.                 singular,
  640.                 /* [7] */
  641.                 "index",
  642.                 pIndex,
  643.                 cLongInteger,
  644.                 "the number of the window",
  645.                 reserved,
  646.                 singleItem,
  647.                 notEnumerated,
  648.                 readWrite,
  649.                 reserved, reserved, reserved, reserved,
  650.                 reserved, reserved, reserved, reserved,
  651.                 reserved,
  652.                 reserved,
  653.                 reserved,
  654.                 singular,
  655.                 /* [8] */
  656.                 "modal",
  657.                 pIsModal,
  658.                 cBoolean,
  659.                 "Is the window modal?",
  660.                 reserved,
  661.                 singleItem,
  662.                 notEnumerated,
  663.                 readOnly,
  664.                 reserved, reserved, reserved, reserved,
  665.                 reserved, reserved, reserved, reserved,
  666.                 reserved,
  667.                 reserved,
  668.                 reserved,
  669.                 singular,
  670.                 /* [9] */
  671.                 "name",
  672.                 pName,
  673.                 cIntlText,
  674.                 "the title of the window",
  675.                 reserved,
  676.                 singleItem,
  677.                 notEnumerated,
  678.                 readWrite,
  679.                 reserved, reserved, reserved, reserved,
  680.                 reserved, reserved, reserved, reserved,
  681.                 reserved,
  682.                 reserved,
  683.                 reserved,
  684.                 singular,
  685.                 /* [10] */
  686.                 "resizable",
  687.                 pIsResizable,
  688.                 cBoolean,
  689.                 "Is the window resizable?",
  690.                 reserved,
  691.                 singleItem,
  692.                 notEnumerated,
  693.                 readOnly,
  694.                 reserved, reserved, reserved, reserved,
  695.                 reserved, reserved, reserved, reserved,
  696.                 reserved,
  697.                 reserved,
  698.                 reserved,
  699.                 singular,
  700.                 /* [11] */
  701.                 "selection",
  702.                 pSelection,
  703.                 cSelection,
  704.                 "the selection visible to the user",
  705.                 reserved,
  706.                 singleItem,
  707.                 notEnumerated,
  708.                 readWrite,
  709.                 reserved, reserved, reserved, reserved,
  710.                 reserved, reserved, reserved, reserved,
  711.                 reserved,
  712.                 reserved,
  713.                 reserved,
  714.                 singular,
  715.                 /* [12] */
  716.                 "titled",
  717.                 pHasTitleBar,
  718.                 cBoolean,
  719.                 "Does the window have a title bar?",
  720.                 reserved,
  721.                 singleItem,
  722.                 notEnumerated,
  723.                 readOnly,
  724.                 reserved, reserved, reserved, reserved,
  725.                 reserved, reserved, reserved, reserved,
  726.                 reserved,
  727.                 reserved,
  728.                 reserved,
  729.                 singular,
  730.                 /* [13] */
  731.                 "visible",
  732.                 pVisible,
  733.                 cBoolean,
  734.                 "Is the window visible?",
  735.                 reserved,
  736.                 singleItem,
  737.                 notEnumerated,
  738.                 readWrite,
  739.                 reserved, reserved, reserved, reserved,
  740.                 reserved, reserved, reserved, reserved,
  741.                 reserved,
  742.                 reserved,
  743.                 reserved,
  744.                 singular,
  745.                 /* [14] */
  746.                 "zoomable",
  747.                 pIsZoomable,
  748.                 cBoolean,
  749.                 "Is the window zoomable?",
  750.                 reserved,
  751.                 singleItem,
  752.                 notEnumerated,
  753.                 readOnly,
  754.                 reserved, reserved, reserved, reserved,
  755.                 reserved, reserved, reserved, reserved,
  756.                 reserved,
  757.                 reserved,
  758.                 reserved,
  759.                 singular,
  760.                 /* [15] */
  761.                 "zoomed",
  762.                 pIsZoomed,
  763.                 cBoolean,
  764.                 "Is the window zoomed?",
  765.                 reserved,
  766.                 singleItem,
  767.                 notEnumerated,
  768.                 readWrite,
  769.                 reserved, reserved, reserved, reserved,
  770.                 reserved, reserved, reserved, reserved,
  771.                 reserved,
  772.                 reserved,
  773.                 reserved,
  774.                 singular,
  775.             },
  776.             {    /* array Elements: 1 elements */
  777.                 /* [1] */
  778.                 cButton,
  779.                 {    /* array KeyForms: 2 elements */
  780.                     /* [1] */
  781.                     formAbsolutePosition,
  782.                     /* [2] */
  783.                     formName
  784.                 },
  785.                 /* [1] */
  786.                 cTextLabel,
  787.                 {    /* array KeyForms: 2 elements */
  788.                     /* [1] */
  789.                     formAbsolutePosition,
  790.                     /* [2] */
  791.                     formName
  792.                 }
  793.             },
  794.             "windows",
  795.             cWindow,
  796.             "Every window",
  797.             {    /* array Properties: 1 elements */
  798.                 /* [1] */
  799.                 "",
  800.                 kAESpecialClassProperties,
  801.                 cType,
  802.                 "",
  803.                 reserved,
  804.                 singleItem,
  805.                 notEnumerated,
  806.                 readOnly,
  807.                 reserved, reserved, reserved, reserved,
  808.                 reserved, reserved, reserved, reserved,
  809.                 reserved,
  810.                 reserved,
  811.                 reserved,
  812.                 plural
  813.             },
  814.             {    /* array Elements: 0 elements */
  815.             },
  816.             /* [4] */
  817.             "button",
  818.             cButton,
  819.             "A button for clicking on",
  820.             {    /* array Properties: 5 elements */
  821.                 /* [1] */
  822.                 "script",
  823.                 pScript,
  824.                 cScript,
  825.                 "the script",
  826.                 reserved,
  827.                 singleItem,
  828.                 notEnumerated,
  829.                 readWrite,
  830.                 reserved, reserved, reserved, reserved,
  831.                 reserved, reserved, reserved, reserved, reserved,
  832.                 notFeminine,
  833.                 notMasculine,
  834.                 singular,
  835.                 /* [1] */
  836.                 "kind",
  837.                 pButtonKind,
  838.                 enumButtonKind,
  839.                 "the kind of button",
  840.                 reserved,
  841.                 singleItem,
  842.                 enumerated,
  843.                 readWrite,
  844.                 reserved, reserved, reserved, reserved,
  845.                 reserved, reserved, reserved, reserved, reserved,
  846.                 notFeminine,
  847.                 notMasculine,
  848.                 singular,
  849.                 /* [1] */
  850.                 "best type",
  851.                 pBestType,
  852.                 cType,
  853.                 "the best descriptor type",
  854.                 reserved,
  855.                 singleItem,
  856.                 notEnumerated,
  857.                 readOnly,
  858.                 reserved, reserved, reserved, reserved,
  859.                 reserved, reserved, reserved, reserved,
  860.                 reserved,
  861.                 reserved,
  862.                 reserved,
  863.                 singular,
  864.                 /* [2] */
  865.                 "bounds",
  866.                 pBounds,
  867.                 cQDRectangle,
  868.                 "the smallest rectangle that contains the entire graphic object",
  869.                 reserved,
  870.                 singleItem,
  871.                 notEnumerated,
  872.                 readWrite,
  873.                 reserved, reserved, reserved, reserved,
  874.                 reserved, reserved, reserved, reserved,
  875.                 reserved,
  876.                 reserved,
  877.                 reserved,
  878.                 singular,
  879.                 /* [3] */
  880.                 "class",
  881.                 pClass,
  882.                 cType,
  883.                 "the class",
  884.                 reserved,
  885.                 singleItem,
  886.                 notEnumerated,
  887.                 readOnly,
  888.                 reserved, reserved, reserved, reserved,
  889.                 reserved, reserved, reserved, reserved,
  890.                 reserved,
  891.                 reserved,
  892.                 reserved,
  893.                 singular,
  894.                 /* [4] */
  895.                 "default type",
  896.                 pDefaultType,
  897.                 cType,
  898.                 "the default descriptor type",
  899.                 reserved,
  900.                 singleItem,
  901.                 notEnumerated,
  902.                 readOnly,
  903.                 reserved, reserved, reserved, reserved,
  904.                 reserved, reserved, reserved, reserved,
  905.                 reserved,
  906.                 reserved,
  907.                 reserved,
  908.                 singular,
  909.                 /* [9] */
  910.                 "name",
  911.                 pName,
  912.                 cIntlText,
  913.                 "the title of the control",
  914.                 reserved,
  915.                 singleItem,
  916.                 notEnumerated,
  917.                 readWrite,
  918.                 reserved, reserved, reserved, reserved,
  919.                 reserved, reserved, reserved, reserved,
  920.                 reserved,
  921.                 reserved,
  922.                 reserved,
  923.                 singular,
  924.                 /* [5] */
  925.                 "color",
  926.                 pColor,
  927.                 cRGBColor,
  928.                 "the color of the title",
  929.                 reserved,
  930.                 singleItem,
  931.                 notEnumerated,
  932.                 readWrite,
  933.                 reserved, reserved, reserved, reserved,
  934.                 reserved, reserved, reserved, reserved,
  935.                 reserved,
  936.                 reserved,
  937.                 reserved,
  938.                 singular,
  939.                 /* [7] */
  940.                 "font",
  941.                 pFont,
  942.                 cText,
  943.                 "the name of the font of the title",
  944.                 reserved,
  945.                 singleItem,
  946.                 notEnumerated,
  947.                 readWrite,
  948.                 reserved, reserved, reserved, reserved,
  949.                 reserved, reserved, reserved, reserved,
  950.                 reserved,
  951.                 reserved,
  952.                 reserved,
  953.                 singular,
  954.                 /* [8] */
  955.                 "size",
  956.                 pPointSize,
  957.                 cFixed,
  958.                 "the size in points of the title",
  959.                 reserved,
  960.                 singleItem,
  961.                 notEnumerated,
  962.                 readWrite,
  963.                 reserved, reserved, reserved, reserved,
  964.                 reserved, reserved, reserved, reserved,
  965.                 reserved,
  966.                 reserved,
  967.                 reserved,
  968.                 singular,
  969.                 /* [10] */
  970.                 "style",
  971.                 pTextStyles,
  972.                 cTextStyles,
  973.                 "the text style of the title",
  974.                 reserved,
  975.                 singleItem,
  976.                 notEnumerated,
  977.                 readWrite,
  978.                 reserved, reserved, reserved, reserved,
  979.                 reserved, reserved, reserved, reserved,
  980.                 reserved,
  981.                 reserved,
  982.                 reserved,
  983.                 singular,
  984.             },
  985.             {    /* array Elements: 0 elements */
  986.             },
  987.             "buttons",
  988.             cButton,
  989.             "Every button",
  990.             {    /* array Properties: 1 elements */
  991.                 /* [1] */
  992.                 "",
  993.                 kAESpecialClassProperties,
  994.                 cType,
  995.                 "",
  996.                 reserved,
  997.                 singleItem,
  998.                 notEnumerated,
  999.                 readOnly,
  1000.                 reserved, reserved, reserved, reserved,
  1001.                 reserved, reserved, reserved, reserved,
  1002.                 reserved,
  1003.                 reserved,
  1004.                 reserved,
  1005.                 plural
  1006.             },
  1007.             {    /* array Elements: 0 elements */
  1008.             },
  1009.             /* [4] */
  1010.             "text field",
  1011.             cTextLabel,
  1012.             "A text field",
  1013.             {    /* array Properties: 5 elements */
  1014.                 /* [1] */
  1015.                 "script",
  1016.                 pScript,
  1017.                 cScript,
  1018.                 "the script",
  1019.                 reserved,
  1020.                 singleItem,
  1021.                 notEnumerated,
  1022.                 readWrite,
  1023.                 reserved, reserved, reserved, reserved,
  1024.                 reserved, reserved, reserved, reserved, reserved,
  1025.                 notFeminine,
  1026.                 notMasculine,
  1027.                 singular,
  1028.                 /* [1] */
  1029.                 "best type",
  1030.                 pBestType,
  1031.                 cType,
  1032.                 "the best descriptor type",
  1033.                 reserved,
  1034.                 singleItem,
  1035.                 notEnumerated,
  1036.                 readOnly,
  1037.                 reserved, reserved, reserved, reserved,
  1038.                 reserved, reserved, reserved, reserved,
  1039.                 reserved,
  1040.                 reserved,
  1041.                 reserved,
  1042.                 singular,
  1043.                 /* [2] */
  1044.                 "bounds",
  1045.                 pBounds,
  1046.                 cQDRectangle,
  1047.                 "the smallest rectangle that contains the entire graphic object",
  1048.                 reserved,
  1049.                 singleItem,
  1050.                 notEnumerated,
  1051.                 readWrite,
  1052.                 reserved, reserved, reserved, reserved,
  1053.                 reserved, reserved, reserved, reserved,
  1054.                 reserved,
  1055.                 reserved,
  1056.                 reserved,
  1057.                 singular,
  1058.                 /* [3] */
  1059.                 "class",
  1060.                 pClass,
  1061.                 cType,
  1062.                 "the class",
  1063.                 reserved,
  1064.                 singleItem,
  1065.                 notEnumerated,
  1066.                 readOnly,
  1067.                 reserved, reserved, reserved, reserved,
  1068.                 reserved, reserved, reserved, reserved,
  1069.                 reserved,
  1070.                 reserved,
  1071.                 reserved,
  1072.                 singular,
  1073.                 /* [4] */
  1074.                 "default type",
  1075.                 pDefaultType,
  1076.                 cType,
  1077.                 "the default descriptor type",
  1078.                 reserved,
  1079.                 singleItem,
  1080.                 notEnumerated,
  1081.                 readOnly,
  1082.                 reserved, reserved, reserved, reserved,
  1083.                 reserved, reserved, reserved, reserved,
  1084.                 reserved,
  1085.                 reserved,
  1086.                 reserved,
  1087.                 singular,
  1088.                 /* [9] */
  1089.                 "name",
  1090.                 pName,
  1091.                 cIntlText,
  1092.                 "the name of the field",
  1093.                 reserved,
  1094.                 singleItem,
  1095.                 notEnumerated,
  1096.                 readWrite,
  1097.                 reserved, reserved, reserved, reserved,
  1098.                 reserved, reserved, reserved, reserved,
  1099.                 reserved,
  1100.                 reserved,
  1101.                 reserved,
  1102.                 singular,
  1103.                 /* [9] */
  1104.                 "contents",
  1105.                 pContents,
  1106.                 cIntlText,
  1107.                 "the contents of the field",
  1108.                 reserved,
  1109.                 singleItem,
  1110.                 notEnumerated,
  1111.                 readWrite,
  1112.                 reserved, reserved, reserved, reserved,
  1113.                 reserved, reserved, reserved, reserved,
  1114.                 reserved,
  1115.                 reserved,
  1116.                 reserved,
  1117.                 singular,
  1118.                 /* [5] */
  1119.                 "color",
  1120.                 pColor,
  1121.                 cRGBColor,
  1122.                 "the color of the text",
  1123.                 reserved,
  1124.                 singleItem,
  1125.                 notEnumerated,
  1126.                 readWrite,
  1127.                 reserved, reserved, reserved, reserved,
  1128.                 reserved, reserved, reserved, reserved,
  1129.                 reserved,
  1130.                 reserved,
  1131.                 reserved,
  1132.                 singular,
  1133.                 /* [7] */
  1134.                 "font",
  1135.                 pFont,
  1136.                 cText,
  1137.                 "the name of the font of the text",
  1138.                 reserved,
  1139.                 singleItem,
  1140.                 notEnumerated,
  1141.                 readWrite,
  1142.                 reserved, reserved, reserved, reserved,
  1143.                 reserved, reserved, reserved, reserved,
  1144.                 reserved,
  1145.                 reserved,
  1146.                 reserved,
  1147.                 singular,
  1148.                 /* [8] */
  1149.                 "size",
  1150.                 pPointSize,
  1151.                 cFixed,
  1152.                 "the size in points of the text",
  1153.                 reserved,
  1154.                 singleItem,
  1155.                 notEnumerated,
  1156.                 readWrite,
  1157.                 reserved, reserved, reserved, reserved,
  1158.                 reserved, reserved, reserved, reserved,
  1159.                 reserved,
  1160.                 reserved,
  1161.                 reserved,
  1162.                 singular,
  1163.                 /* [10] */
  1164.                 "style",
  1165.                 pTextStyles,
  1166.                 cTextStyles,
  1167.                 "the style of the text",
  1168.                 reserved,
  1169.                 singleItem,
  1170.                 notEnumerated,
  1171.                 readWrite,
  1172.                 reserved, reserved, reserved, reserved,
  1173.                 reserved, reserved, reserved, reserved,
  1174.                 reserved,
  1175.                 reserved,
  1176.                 reserved,
  1177.                 singular,
  1178.                 /* [10] */
  1179.                 "editable",
  1180.                 pEditable,
  1181.                 cBoolean,
  1182.                 "is the text editable?",
  1183.                 reserved,
  1184.                 singleItem,
  1185.                 notEnumerated,
  1186.                 readWrite,
  1187.                 reserved, reserved, reserved, reserved,
  1188.                 reserved, reserved, reserved, reserved,
  1189.                 reserved,
  1190.                 reserved,
  1191.                 reserved,
  1192.                 singular,
  1193.             },
  1194.             {    /* array Elements: 0 elements */
  1195.             },
  1196.             "text fields",
  1197.             cTextLabel,
  1198.             "Every text field",
  1199.             {    /* array Properties: 1 elements */
  1200.                 /* [1] */
  1201.                 "",
  1202.                 kAESpecialClassProperties,
  1203.                 cType,
  1204.                 "",
  1205.                 reserved,
  1206.                 singleItem,
  1207.                 notEnumerated,
  1208.                 readOnly,
  1209.                 reserved, reserved, reserved, reserved,
  1210.                 reserved, reserved, reserved, reserved,
  1211.                 reserved,
  1212.                 reserved,
  1213.                 reserved,
  1214.                 plural
  1215.             },
  1216.             {    /* array Elements: 0 elements */
  1217.             },
  1218.         },
  1219.         {    /* array ComparisonOps: 8 elements */
  1220.             /* [1] */
  1221.             "starts with",
  1222.             kAEBeginsWith,
  1223.             "Starts with",
  1224.             /* [2] */
  1225.             "contains",
  1226.             kAEContains,
  1227.             "Contains",
  1228.             /* [3] */
  1229.             "ends with",
  1230.             kAEEndsWith,
  1231.             "Ends with",
  1232.             /* [4] */
  1233.             "=",
  1234.             kAEEquals,
  1235.             "Equal",
  1236.             /* [5] */
  1237.             ">",
  1238.             kAEGreaterThan,
  1239.             "Greater than",
  1240.             /* [6] */
  1241.             "≥",
  1242.             kAEGreaterThanEquals,
  1243.             "Greater than or equal to",
  1244.             /* [7] */
  1245.             "<",
  1246.             kAELessThan,
  1247.             "Less than",
  1248.             /* [8] */
  1249.             "≤",
  1250.             kAELessThanEquals,
  1251.             "Less than or equal to",
  1252.         },
  1253.         {    /* array Enumerations: 4 elements */
  1254.             /* [1] */
  1255.             enumSaveOptions,
  1256.             {    /* array Enumerators: 3 elements */
  1257.                 /* [1] */
  1258.                 "yes",
  1259.                 kAEYes,
  1260.                 "Save objects now",
  1261.                 /* [2] */
  1262.                 "no",
  1263.                 kAENo ,
  1264.                 "Do not save objects",
  1265.                 /* [3] */
  1266.                 "ask",
  1267.                 kAEAsk ,
  1268.                 "Ask the user whether to save",
  1269.             },
  1270.             /* [3] */    
  1271.             enumKeyForm,
  1272.             {    /* array Enumerators: 3 elements */
  1273.                 /* [1] */
  1274.                 "index",
  1275.                 formAbsolutePosition,
  1276.                 "keyform designating indexed access",
  1277.                 /* [2] */
  1278.                 "named",
  1279.                 formName,
  1280.                 "keyform designating named access",
  1281.                 /* [3] */
  1282.                 "id",
  1283.                 formUniqueID,
  1284.                 "keyform designating identifer access"
  1285.             },
  1286.             enumStyle,
  1287.             {    /* array Enumerators: 4 elements */
  1288.                 /* [1] */
  1289.                 "plain",
  1290.                 kAEPlain,
  1291.                 "Plain",
  1292.                 /* [2] */
  1293.                 "bold",
  1294.                 kAEBold,
  1295.                 "Bold",
  1296.                 /* [3] */
  1297.                 "italic",
  1298.                 kAEItalic,
  1299.                 "Italic",
  1300.                 /* [4] */
  1301.                 "outline",
  1302.                 kAEOutline,
  1303.                 "Outline",
  1304.                 /* [5] */
  1305.                 "shadow",
  1306.                 kAEShadow,
  1307.                 "Shadow",
  1308.                 /* [6] */
  1309.                 "underline",
  1310.                 kAEUnderline,
  1311.                 "Underline",
  1312.                 /* [7] */
  1313.                 "superscript",
  1314.                 kAESuperscript,
  1315.                 "Superscript",
  1316.                 /* [8] */
  1317.                 "subscript",
  1318.                 kAESubscript,
  1319.                 "Subscript",
  1320.                 /* [9] */
  1321.                 "strikethrough",
  1322.                 kAEStrikethrough,
  1323.                 "Strikethrough",
  1324.                 /* [10] */
  1325.                 "small Caps",
  1326.                 kAESmallCaps,
  1327.                 "Small Caps",
  1328.                 /* [11] */
  1329.                 "all caps ",
  1330.                 kAEAllCaps ,
  1331.                 "All Caps ",
  1332.                 /* [12] */
  1333.                 "all lowercase",
  1334.                 kAELowercase,
  1335.                 "Lowercase",
  1336.                 /* [13] */
  1337.                 "condensed",
  1338.                 kAECondensed,
  1339.                 "Condensed",
  1340.                 /* [14] */
  1341.                 "expanded",
  1342.                 kAEExpanded,
  1343.                 "Expanded",
  1344.                 /* [15] */
  1345.                 "hidden",
  1346.                 kAEHidden,
  1347.                 "Hidden",
  1348.             },
  1349.             /* [4] */
  1350.             enumEventKind,
  1351.             {    /* array Enumerators: 3 elements */
  1352.                 /* [1] */
  1353.                 "menu event",
  1354.                 kAEMenuEvent,
  1355.                 "menu item chosen",
  1356.                 /* [2] */
  1357.                 "key event",
  1358.                 kAEKeyEvent,
  1359.                 "key pressed",
  1360.                 /* [3] */
  1361.                 "mouse event",
  1362.                 kAEMouseEvent,
  1363.                 "mouse clicked",
  1364.             },
  1365.             /* [4] */
  1366.             enumButtonKind,
  1367.             {    /* array Enumerators: 3 elements */
  1368.                 /* [1] */
  1369.                 "standard",
  1370.                 kAEBtnStandard,
  1371.                 "standard round-cornered button",
  1372.                 /* [2] */
  1373.                 "checkbox",
  1374.                 kAEBtnCheckbox,
  1375.                 "check-box button",
  1376.                 /* [3] */
  1377.                 "radio",
  1378.                 kAEBtnRadio,
  1379.                 "radio button",
  1380.             },
  1381.         },
  1382.     }
  1383. };
  1384.  
  1385.  
  1386.  
  1387. type kSignature as 'STR ';
  1388.  
  1389.  
  1390. resource kSignature (0) {
  1391.     " SimpliFace2 Application"
  1392. };
  1393.  
  1394.  
  1395. resource 'BNDL' (128) {
  1396.     kSignature,
  1397.     0,
  1398.     {
  1399.         'ICN#',
  1400.         {
  1401.             0,     128
  1402.         },
  1403.         'FREF',
  1404.         {
  1405.             0,     128
  1406.         }
  1407.     }
  1408. };
  1409.  
  1410.  
  1411. resource 'FREF' (128) {
  1412.     'APPL',
  1413.     0,
  1414.     ""
  1415. };
  1416.  
  1417.  
  1418. //--------------------------------------------------------------------------------------------------
  1419. // Icons
  1420. //--------------------------------------------------------------------------------------------------
  1421. include "SimpliFace2_Icon.rsrc";
  1422.  
  1423.  
  1424. resource 'STR#' (kSimpliFace2Buzzwords, purgeable) {
  1425.     {
  1426.     "SimpliFace2",
  1427.     "SimpliFace2 Global Variables",
  1428.     "SimpliFace2 Startup"
  1429.     }
  1430. };
  1431.  
  1432.  
  1433. resource 'STR#' (kSimpliFace2ErrStrings, purgeable) {
  1434.     {
  1435.     "Can't do it"
  1436.     }
  1437. };
  1438.  
  1439.  
  1440. /* we use an MBAR resource to conveniently load all the menus */
  1441.  
  1442. resource 'MBAR' (rMenuBar) {
  1443.     { mApple, mFile, mEdit };
  1444. };
  1445.  
  1446. resource 'MENU' (mApple) {
  1447.     mApple, textMenuProc,
  1448.     0b1111111111111111111111111111101,    /* disable dashed line, enable About and DAs */
  1449.     enabled, apple,
  1450.     {
  1451.         "About SimpliFace2…",
  1452.             noicon, nokey, nomark, plain;
  1453.         "-",
  1454.             noicon, nokey, nomark, plain
  1455.     }
  1456. };
  1457.  
  1458. resource 'MENU' (mFile) {
  1459.     mFile, textMenuProc,
  1460.     0b0000000000000000000000000000010,    /* enable Quit only, program enables others */
  1461.     enabled, "File",
  1462.     {
  1463.         "Close",
  1464.             noicon, "W", nomark, plain;
  1465.         "Quit",
  1466.             noicon, "Q", nomark, plain
  1467.     }
  1468. };
  1469.  
  1470. resource 'MENU' (mEdit) {
  1471.     mEdit, textMenuProc,
  1472.     0b0000000000000000000000000000000,    /* disable everything, program does the enabling */
  1473.     enabled, "Edit",
  1474.      {
  1475.         "Undo",
  1476.             noicon, "Z", nomark, plain;
  1477.         "-",
  1478.             noicon, nokey, nomark, plain;
  1479.         "Cut",
  1480.             noicon, "X", nomark, plain;
  1481.         "Copy",
  1482.             noicon, "C", nomark, plain;
  1483.         "Paste",
  1484.             noicon, "V", nomark, plain;
  1485.         "Clear",
  1486.             noicon, nokey, nomark, plain
  1487.     }
  1488. };
  1489.  
  1490.  
  1491.  
  1492. /* this ALRT and DITL are used as an error screen */
  1493. resource 'ALRT' (rUserAlert, purgeable) {
  1494.     {40, 20, 180, 330},
  1495.     rUserAlert,
  1496.     { /* array: 4 elements */
  1497.         /* [1] */
  1498.         OK, visible, silent,
  1499.         /* [2] */
  1500.         OK, visible, silent,
  1501.         /* [3] */
  1502.         OK, visible, silent,
  1503.         /* [4] */
  1504.         OK, visible, silent
  1505.     }
  1506. };
  1507.  
  1508. resource 'DITL' (rUserAlert, purgeable) {
  1509.     { /* array DITLarray: 3 elements */
  1510.         /* [1] */
  1511.         {110, 220, 130, 300},
  1512.         Button {
  1513.             enabled,
  1514.             "OK"
  1515.         },
  1516.         /* [2] */
  1517.         {10, 60, 90, 300},
  1518.         StaticText {
  1519.             disabled,
  1520.             "Error. ^0."
  1521.         },
  1522.         /* [3] */
  1523.         {8, 8, 40, 40},
  1524.         Icon {
  1525.             disabled,
  1526.             2
  1527.         }
  1528.     }
  1529. };
  1530.  
  1531.  
  1532. /* this ALRT and DITL are used as an About screen */
  1533.  
  1534. resource 'ALRT' (rAboutAlert, purgeable) {
  1535.     {40, 20, 160, 330 }, rAboutAlert, {
  1536.         OK, visible, silent;
  1537.         OK, visible, silent;
  1538.         OK, visible, silent;
  1539.         OK, visible, silent
  1540.     };
  1541. };
  1542.  
  1543. resource 'DITL' (rAboutAlert, purgeable) {
  1544.     { /* array DITLarray: 5 elements */
  1545.         /* [1] */
  1546.         {88, 224, 108, 304},
  1547.         Button {
  1548.             enabled,
  1549.             "OK"
  1550.         },
  1551.         /* [2] */
  1552.         {8, 8, 24, 304 },
  1553.         StaticText {
  1554.             disabled,
  1555.             "SimpliFace2 Application"
  1556.         },
  1557.         /* [3] */
  1558.         {32, 8, 48, 237},
  1559.         StaticText {
  1560.             disabled,
  1561.             "sample code for 'develop' magazine"
  1562.         },
  1563.         /* [4] */
  1564.         {56, 8, 72, 220},
  1565.         StaticText {
  1566.             disabled,
  1567.             "Written by: Paul G Smith"
  1568.         },
  1569.         /* [5] */
  1570.         {80, 24, 112, 220},
  1571.         StaticText {
  1572.             disabled,
  1573.             "AppleLink: COMMSTALK.HQ"
  1574.         }
  1575.     }
  1576. };
  1577.  
  1578.